libivykis is a library for asynchronous I/O readiness notification.
It is a thin, portable wrapper around OS-provided mechanisms such as
kqueue(2) and poll(2).

libivykis was mainly designed for building high-performance network
applications, but can be used in any event-driven application that uses
poll(2)able file descriptors as its event sources.

While some programming models dictate using blocking I/O and starting a
thread per event source, programs written to the ivykis API are
generally single-threaded (or use only a small number of threads), and
never block on I/O. All input and output is done in a nonblocking
fashion, with I/O readiness notifications delivered via callback
functions.
